package com.todo.strategy.offline.application.backend.service;

import com.todo.common.common.entity.response.BizPageResponse;
import com.todo.common.common.entity.response.BizResponse;
import com.todo.strategy.offline.iface.request.*;
import com.todo.strategy.offline.iface.response.PlatformStrategyDetailResp;
import com.todo.strategy.offline.iface.response.PlatformStrategyRelationItemResp;
import com.todo.strategy.offline.iface.response.PlatformStrategyRelationResp;
import com.todo.strategy.offline.iface.response.QueryPlatformStrategyByConditionResp;

import java.util.List;

/**
 * (PlatformStrategy)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 00:19:47
 */
public interface PlatformStrategyBackendService {

    /**
     * 根据主键id启禁用平台攻略
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> enablePlatformStrategyById(EnablePlatformStrategyByIdReq req);

    /**
     * 根据主键id查询平台攻略详情
     *
     * @param req
     * @return
     */
    BizResponse<PlatformStrategyDetailResp> queryPlatformStrategyDetailById(QueryPlatformStrategyDetailByIdReq req);

    /**
     * 多条件查询平台攻略详情
     *
     * @param req
     * @return
     */
    BizPageResponse<QueryPlatformStrategyByConditionResp> queryPlatformStrategyByCondition(QueryPlatformStrategyByConditionReq req);

    /**
     * 新增平台攻略信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> insertPlatformStrategy(InsertPlatformStrategyReq req);

    /**
     * 更新平台攻略信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> updatePlatformStrategy(UpdatePlatformStrategyReq req);

    /**
     * 追加平台攻略详情
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> appendPlatformStrategyDetail(AppendPlatformStrategyDetailReq req);

    /**
     * 新增平台攻略关联信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> insertStrategyRelation(InsertStrategyRelationReq req);

    /**
     * 查询平台攻略关联列表
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> updateStrategyRelation(UpdateStrategyRelationReq req);

    /**
     * 查询平台攻略关联列表
     *
     * @param req
     * @return
     */
    BizResponse<List<PlatformStrategyRelationResp>> queryStrategyRelationList(QueryStrategyRelationListReq req);

    /**
     * 人工检测平台攻略是否通过
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> detectionPlatformStrategyById(DetectionPlatformStrategyReq req);

    /**
     * 删除平台攻略关联信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> removeStrategyRelation(RemoveStrategyRelationReq req);

    /**
     * 根据主键id查询平台攻略关联信息
     *
     * @param req
     * @return
     */
    BizResponse<PlatformStrategyRelationItemResp> queryStrategyRelationById(QueryStrategyRelationByIdReq req);
}
